#ifndef SM2_H
#define SM2_H

#include <QString>
#include "gmsslqtlibrary_global.h"

class GMSSLQTLIBRARYSHARED_EXPORT SM2
{
public:
    // 生成秘钥对
    bool generateKeyPair(QByteArray& priKey, QByteArray& pubKey);
    bool generateKeyPair(const QString& priKeyFile, const QString& pubKeyFile);

    // 对数据进行加解密
    bool encrypt(const QByteArray& in, QByteArray& out, const QByteArray& pubKey);
    bool decrypt(const QByteArray& in, QByteArray& out, const QByteArray& priKey);

    // 对摘要进行签名和验签
    bool sign(const QByteArray& digest, QByteArray& sign, const QByteArray& priKey);
    bool verify(const QByteArray& digest, const QByteArray& sign, const QByteArray& pubKey);
};

#endif // SM2_H
